package com.ygqh.baby.po;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author Ss
 */
public class YgWholesalerSkuExample {
	protected String orderByClause;

	protected boolean distinct;

	protected List<Criteria> oredCriteria;

	public YgWholesalerSkuExample() {
		oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}

	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct(boolean distinct) {
		this.distinct = distinct;
	}

	public boolean isDistinct() {
		return distinct;
	}

	public List<Criteria> getOredCriteria() {
		return oredCriteria;
	}

	public void or(Criteria criteria) {
		oredCriteria.add(criteria);
	}

	public Criteria or() {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria() {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
			oredCriteria.add(criteria);
		}
		return criteria;
	}

	protected Criteria createCriteriaInternal() {
		Criteria criteria = new Criteria();
		return criteria;
	}

	public void clear() {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;

		protected GeneratedCriteria() {
			super();
			criteria = new ArrayList<Criterion>();
		}

		public boolean isValid() {
			return criteria.size() > 0;
		}

		public List<Criterion> getAllCriteria() {
			return criteria;
		}

		public List<Criterion> getCriteria() {
			return criteria;
		}

		protected void addCriterion(String condition) {
			if (condition == null) {
				throw new RuntimeException("Value for condition cannot be null");
			}
			criteria.add(new Criterion(condition));
		}

		protected void addCriterion(String condition, Object value, String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value));
		}

		protected void addCriterion(String condition, Object value1, Object value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value1, value2));
		}

		public Criteria andIdIsNull() {
			addCriterion("id is null");
			return (Criteria) this;
		}

		public Criteria andIdIsNotNull() {
			addCriterion("id is not null");
			return (Criteria) this;
		}

		public Criteria andIdEqualTo(Long value) {
			addCriterion("id =", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotEqualTo(Long value) {
			addCriterion("id <>", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdGreaterThan(Long value) {
			addCriterion("id >", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdGreaterThanOrEqualTo(Long value) {
			addCriterion("id >=", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLessThan(Long value) {
			addCriterion("id <", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLessThanOrEqualTo(Long value) {
			addCriterion("id <=", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdIn(List<Long> values) {
			addCriterion("id in", values, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotIn(List<Long> values) {
			addCriterion("id not in", values, "id");
			return (Criteria) this;
		}

		public Criteria andIdBetween(Long value1, Long value2) {
			addCriterion("id between", value1, value2, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotBetween(Long value1, Long value2) {
			addCriterion("id not between", value1, value2, "id");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdIsNull() {
			addCriterion("wholesaler_id is null");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdIsNotNull() {
			addCriterion("wholesaler_id is not null");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdEqualTo(Long value) {
			addCriterion("wholesaler_id =", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdNotEqualTo(Long value) {
			addCriterion("wholesaler_id <>", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdGreaterThan(Long value) {
			addCriterion("wholesaler_id >", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdGreaterThanOrEqualTo(Long value) {
			addCriterion("wholesaler_id >=", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdLessThan(Long value) {
			addCriterion("wholesaler_id <", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdLessThanOrEqualTo(Long value) {
			addCriterion("wholesaler_id <=", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdIn(List<Long> values) {
			addCriterion("wholesaler_id in", values, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdNotIn(List<Long> values) {
			addCriterion("wholesaler_id not in", values, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdBetween(Long value1, Long value2) {
			addCriterion("wholesaler_id between", value1, value2, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdNotBetween(Long value1, Long value2) {
			addCriterion("wholesaler_id not between", value1, value2, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameIsNull() {
			addCriterion("wholesaler_name is null");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameIsNotNull() {
			addCriterion("wholesaler_name is not null");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameEqualTo(String value) {
			addCriterion("wholesaler_name =", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotEqualTo(String value) {
			addCriterion("wholesaler_name <>", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameGreaterThan(String value) {
			addCriterion("wholesaler_name >", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameGreaterThanOrEqualTo(String value) {
			addCriterion("wholesaler_name >=", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameLessThan(String value) {
			addCriterion("wholesaler_name <", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameLessThanOrEqualTo(String value) {
			addCriterion("wholesaler_name <=", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameLike(String value) {
			addCriterion("wholesaler_name like", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotLike(String value) {
			addCriterion("wholesaler_name not like", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameIn(List<String> values) {
			addCriterion("wholesaler_name in", values, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotIn(List<String> values) {
			addCriterion("wholesaler_name not in", values, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameBetween(String value1, String value2) {
			addCriterion("wholesaler_name between", value1, value2, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotBetween(String value1, String value2) {
			addCriterion("wholesaler_name not between", value1, value2, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andSkuCodeIsNull() {
			addCriterion("sku_code is null");
			return (Criteria) this;
		}

		public Criteria andSkuCodeIsNotNull() {
			addCriterion("sku_code is not null");
			return (Criteria) this;
		}

		public Criteria andSkuCodeEqualTo(String value) {
			addCriterion("sku_code =", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeNotEqualTo(String value) {
			addCriterion("sku_code <>", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeGreaterThan(String value) {
			addCriterion("sku_code >", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeGreaterThanOrEqualTo(String value) {
			addCriterion("sku_code >=", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeLessThan(String value) {
			addCriterion("sku_code <", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeLessThanOrEqualTo(String value) {
			addCriterion("sku_code <=", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeLike(String value) {
			addCriterion("sku_code like", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeNotLike(String value) {
			addCriterion("sku_code not like", value, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeIn(List<String> values) {
			addCriterion("sku_code in", values, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeNotIn(List<String> values) {
			addCriterion("sku_code not in", values, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeBetween(String value1, String value2) {
			addCriterion("sku_code between", value1, value2, "skuCode");
			return (Criteria) this;
		}

		public Criteria andSkuCodeNotBetween(String value1, String value2) {
			addCriterion("sku_code not between", value1, value2, "skuCode");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceIsNull() {
			addCriterion("wholesale_price is null");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceIsNotNull() {
			addCriterion("wholesale_price is not null");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceEqualTo(BigDecimal value) {
			addCriterion("wholesale_price =", value, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceNotEqualTo(BigDecimal value) {
			addCriterion("wholesale_price <>", value, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceGreaterThan(BigDecimal value) {
			addCriterion("wholesale_price >", value, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceGreaterThanOrEqualTo(BigDecimal value) {
			addCriterion("wholesale_price >=", value, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceLessThan(BigDecimal value) {
			addCriterion("wholesale_price <", value, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceLessThanOrEqualTo(BigDecimal value) {
			addCriterion("wholesale_price <=", value, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceIn(List<BigDecimal> values) {
			addCriterion("wholesale_price in", values, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceNotIn(List<BigDecimal> values) {
			addCriterion("wholesale_price not in", values, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceBetween(BigDecimal value1, BigDecimal value2) {
			addCriterion("wholesale_price between", value1, value2, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andWholesalePriceNotBetween(BigDecimal value1, BigDecimal value2) {
			addCriterion("wholesale_price not between", value1, value2, "wholesalePrice");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIsNull() {
			addCriterion("create_time is null");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIsNotNull() {
			addCriterion("create_time is not null");
			return (Criteria) this;
		}

		public Criteria andCreateTimeEqualTo(Date value) {
			addCriterion("create_time =", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotEqualTo(Date value) {
			addCriterion("create_time <>", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeGreaterThan(Date value) {
			addCriterion("create_time >", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
			addCriterion("create_time >=", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeLessThan(Date value) {
			addCriterion("create_time <", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
			addCriterion("create_time <=", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIn(List<Date> values) {
			addCriterion("create_time in", values, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotIn(List<Date> values) {
			addCriterion("create_time not in", values, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeBetween(Date value1, Date value2) {
			addCriterion("create_time between", value1, value2, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
			addCriterion("create_time not between", value1, value2, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateByIsNull() {
			addCriterion("create_by is null");
			return (Criteria) this;
		}

		public Criteria andCreateByIsNotNull() {
			addCriterion("create_by is not null");
			return (Criteria) this;
		}

		public Criteria andCreateByEqualTo(String value) {
			addCriterion("create_by =", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotEqualTo(String value) {
			addCriterion("create_by <>", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByGreaterThan(String value) {
			addCriterion("create_by >", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByGreaterThanOrEqualTo(String value) {
			addCriterion("create_by >=", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByLessThan(String value) {
			addCriterion("create_by <", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByLessThanOrEqualTo(String value) {
			addCriterion("create_by <=", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByLike(String value) {
			addCriterion("create_by like", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotLike(String value) {
			addCriterion("create_by not like", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByIn(List<String> values) {
			addCriterion("create_by in", values, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotIn(List<String> values) {
			addCriterion("create_by not in", values, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByBetween(String value1, String value2) {
			addCriterion("create_by between", value1, value2, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotBetween(String value1, String value2) {
			addCriterion("create_by not between", value1, value2, "createBy");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIsNull() {
			addCriterion("update_time is null");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIsNotNull() {
			addCriterion("update_time is not null");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeEqualTo(Date value) {
			addCriterion("update_time =", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotEqualTo(Date value) {
			addCriterion("update_time <>", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeGreaterThan(Date value) {
			addCriterion("update_time >", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
			addCriterion("update_time >=", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeLessThan(Date value) {
			addCriterion("update_time <", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
			addCriterion("update_time <=", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIn(List<Date> values) {
			addCriterion("update_time in", values, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotIn(List<Date> values) {
			addCriterion("update_time not in", values, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeBetween(Date value1, Date value2) {
			addCriterion("update_time between", value1, value2, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
			addCriterion("update_time not between", value1, value2, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateByIsNull() {
			addCriterion("update_by is null");
			return (Criteria) this;
		}

		public Criteria andUpdateByIsNotNull() {
			addCriterion("update_by is not null");
			return (Criteria) this;
		}

		public Criteria andUpdateByEqualTo(String value) {
			addCriterion("update_by =", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotEqualTo(String value) {
			addCriterion("update_by <>", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByGreaterThan(String value) {
			addCriterion("update_by >", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
			addCriterion("update_by >=", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByLessThan(String value) {
			addCriterion("update_by <", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByLessThanOrEqualTo(String value) {
			addCriterion("update_by <=", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByLike(String value) {
			addCriterion("update_by like", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotLike(String value) {
			addCriterion("update_by not like", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByIn(List<String> values) {
			addCriterion("update_by in", values, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotIn(List<String> values) {
			addCriterion("update_by not in", values, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByBetween(String value1, String value2) {
			addCriterion("update_by between", value1, value2, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotBetween(String value1, String value2) {
			addCriterion("update_by not between", value1, value2, "updateBy");
			return (Criteria) this;
		}

		public Criteria andStatusIsNull() {
			addCriterion("status is null");
			return (Criteria) this;
		}

		public Criteria andStatusIsNotNull() {
			addCriterion("status is not null");
			return (Criteria) this;
		}

		public Criteria andStatusEqualTo(String value) {
			addCriterion("status =", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotEqualTo(String value) {
			addCriterion("status <>", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusGreaterThan(String value) {
			addCriterion("status >", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusGreaterThanOrEqualTo(String value) {
			addCriterion("status >=", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusLessThan(String value) {
			addCriterion("status <", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusLessThanOrEqualTo(String value) {
			addCriterion("status <=", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusLike(String value) {
			addCriterion("status like", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotLike(String value) {
			addCriterion("status not like", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusIn(List<String> values) {
			addCriterion("status in", values, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotIn(List<String> values) {
			addCriterion("status not in", values, "status");
			return (Criteria) this;
		}

		public Criteria andStatusBetween(String value1, String value2) {
			addCriterion("status between", value1, value2, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotBetween(String value1, String value2) {
			addCriterion("status not between", value1, value2, "status");
			return (Criteria) this;
		}
	}

	public static class Criteria extends GeneratedCriteria {

		protected Criteria() {
			super();
		}
	}

	public static class Criterion {
		private String condition;

		private Object value;

		private Object secondValue;

		private boolean noValue;

		private boolean singleValue;

		private boolean betweenValue;

		private boolean listValue;

		private String typeHandler;

		public String getCondition() {
			return condition;
		}

		public Object getValue() {
			return value;
		}

		public Object getSecondValue() {
			return secondValue;
		}

		public boolean isNoValue() {
			return noValue;
		}

		public boolean isSingleValue() {
			return singleValue;
		}

		public boolean isBetweenValue() {
			return betweenValue;
		}

		public boolean isListValue() {
			return listValue;
		}

		public String getTypeHandler() {
			return typeHandler;
		}

		protected Criterion(String condition) {
			super();
			this.condition = condition;
			this.typeHandler = null;
			this.noValue = true;
		}

		protected Criterion(String condition, Object value, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.typeHandler = typeHandler;
			if (value instanceof List<?>) {
				this.listValue = true;
			} else {
				this.singleValue = true;
			}
		}

		protected Criterion(String condition, Object value) {
			this(condition, value, null);
		}

		protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.secondValue = secondValue;
			this.typeHandler = typeHandler;
			this.betweenValue = true;
		}

		protected Criterion(String condition, Object value, Object secondValue) {
			this(condition, value, secondValue, null);
		}
	}
}